package cn.ilovese.collect.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class MyDateUtil {
    /**
     * 获取某个时间段内所有日期
     * @param begin
     * @param dEnd
     * @return
     */
    public static List<String> getDayBetweenDates(String begin, Date dEnd) {
        Date dBegin = null;
        try {
            dBegin = new SimpleDateFormat("yyyy-MM-dd").parse(begin);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        List<String> lDate = new ArrayList<String>();
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        lDate.add(sd.format(dBegin));
        Calendar calBegin = Calendar.getInstance();
        // 使用给定的 Date 设置此 Calendar 的时间
        calBegin.setTime(dBegin);
        Calendar calEnd = Calendar.getInstance();
        // 使用给定的 Date 设置此 Calendar 的时间
        calEnd.setTime(dEnd);
        // 测试此日期是否在指定日期之后
        while (true) {
            // 根据日历的规则，为给定的日历字段添加或减去指定的时间量
            calBegin.add(Calendar.DAY_OF_MONTH, 1);
            if(!dEnd.after(calBegin.getTime()))
                break;
            lDate.add(sd.format(calBegin.getTime()));
        }
        return lDate;
    }
    public static String getDayAgoOrAfterString(int num){
        Calendar calendar1 = Calendar.getInstance();
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        calendar1.add(Calendar.DATE, num);
        return sdf1.format(calendar1.getTime());
    }
}
